package duppentity;

import com.google.gson.JsonObject;
import duppentity.annotations.Dupp;
import duppentity.annotations.Param;

import java.util.List;

public interface StationDupp {

    /**
     * 服务站点列表
     */
    @Dupp("mng.buStation.getList")
    JsonObject getStationList(@Param("name") String name,
                                             @Param("adminUserId")Long adminUserId,
                                             @Param("offset") Integer offset,
                                             @Param("count") Integer count);


    @Dupp("buStation.get")
    JsonObject getStation(@Param("id")Long id);


    @Dupp("buStation.create")
    JsonObject addStation(@Param("sessionId")String sessionId,
                          @Param("userId")Long userId,
                          @Param("name")String name,
                          @Param("price")Integer price,
                          @Param("discountRate")Integer discountRate,
                          @Param("lng")Double lng,
                          @Param("lat")Double lat,
                          @Param("address")String address,
                          @Param("openTimeDesc")String openTimeDesc,
                          @Param("openStatus")Integer openStatus,
                          @Param("remark")String remark,
                          @Param("enterGateRomid")String enterRomId,
                          @Param("exitGateRomid")String exitRomId,
                          @Param("deviceBoxNo")String deviceNo,
                          @Param("createBy")Long createBy
                          );
    @Dupp("buStation.update")
    JsonObject editStation(
                        @Param("sessionId")String sessionId,
                        @Param("userId")Long userId,
                        @Param("id")Long id,
                        @Param("name")String name,
                          @Param("price")Integer price,
                          @Param("discountRate")Integer discountRate,
                          @Param("lng")Double lng,
                          @Param("lat")Double lat,
                          @Param("address")String address,
                          @Param("openTimeDesc")String openTimeDesc,
                          @Param("openStatus")Integer openStatus,
                          @Param("remark")String remark,
                          @Param("enterGateRomid")String enterRomId,
                          @Param("exitGateRomid")String exitRomId,
                           @Param("deviceBoxNo")String deviceNo,
                           @Param("modifyBy")Long modifyBy);

    /**
     * 异常记录列表
     */
    @Dupp("mng.buStationFaultRecord.getList")
    JsonObject getFaultRecordList(@Param("stationId") Long stationId,
                                                     @Param("deviceType") Integer deviceType,
                                                     @Param("startCreateTime") String startCreateTime,
                                                     @Param("endCreateTime") String endCreateTime,
                                                     @Param("startRestoreTime") String startRestoreTime,
                                                     @Param("endRestoreTime") String endRestoreTime,
                                                     @Param("offset") Integer offset,
                                                     @Param("count") Integer count);

    /**
     * 异常通知人员列表
     */
    @Dupp("mng.buFaultUser.getList")
    JsonObject getFaultUserList(@Param("name") String name,
                                                 @Param("mobile") String mobile,
                                                 @Param("offset") Integer offset,
                                                 @Param("count") Integer count);

    @Dupp("buFaultUser.get")
    JsonObject getFaultUser(@Param("id")Long id);

    @Dupp("buFaultUser.update")
    JsonObject updateFaultUser(@Param("id")Long id,
                                                 @Param("name") String name,
                                                 @Param("mobile") String mobile,
                                                 @Param("stationIds") List<Long> stationIds,
                                                 @Param("modifyBy") Long modifyBy);

    @Dupp("buFaultUser.create")
    JsonObject saveFaultUser(@Param("name") String name,
                                             @Param("mobile") String mobile,
                                             @Param("stationIds") List<Long> stationIds,
                                             @Param("createBy") Long createBy);

    @Dupp("buFaultUser.delete")
    JsonObject deleteFaultUser(@Param("id")Long id,
                                                @Param("modifyBy") Long modifyBy);

    @Dupp("buStationFaultUser.delete")
    JsonObject deleteStationFaultUser(@Param("id")Long id,
                                                           @Param("modifyBy") Long modifyBy);
}
